home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
keyb
/
stuft310.zip
/
STUFFIT.DOC
< prev
Wrap
Text File
|
1991-04-29
|
16KB
|
459 lines
StuffIt.Doc Last updated by Roedy Green 1991 April 12
PURPOSE
Stuffit is a utility that automates the keyboard. You can
provide a script of keystrokes and Stuffit will automatically
type them into your application programs. What makes Stuffit
different from other keyboard macro programs:
1. The keyboard remains fully functional the entire time
for additional manual input or correction.
2. Stuffit works with intractable programs that throw away
keystrokes, bypass DOS etc.
3. Stuffit watches the screen. It does not just type
blindly.
4. Stuffit watches the clock. It can wake up your computer
at any time of the day and run programs.
4. Stuffit can handle large scripts, up to 64K.
5. Stuffit lets you generate more possible keystroke
chords (combinations) than other products.
7. Assembler source code is provided, giving you the
option of adding new features to the program.
COMMAND LINE PARAMETERS IN A NUTSHELL
+0 Delay until the application has used up all
the keystrokes in the type-ahead buffer.
This is useful for applications that throw
away keystrokes fed to it too quickly.
This is also a handy way to flush any pending
(uneaten) codes from a previous invocation of
StuffIt. e.g.:
StuffIt +0
empties StuffIt's internal buffer.
+hh:mm:ss time delay. (hours and minutes optional)
+4 means wait 4 seconds (must be 0..59).
+2:4 means wait 2 minutes and 4 seconds.
+5:: means wait 5 hours.
=hh:mm:ss delay until a specific time of day (24 hour
format)
(hours and minutes optional).
=16:00:00 means wait till 4 PM.
=00:00:00 means wait till midnight.
=0 also means wait till midnight.
nn stuff a given character code
e.g. 27 for Escape, 13 for Enter
Only ASCII decimal numerics are accepted.
There are no mnemonics for control
characters.
See ASCII code chart in your IBM AT tech
Reference.
@nn stuff an extended code preceded by a null.
Only numerics are accepted. There are
presently no mnemonics for these characters:
e.g. @68 = F10, @73 = PgUp etc.
See table following for common codes.
cc:ss specify both the decimal character and its
scan code
e.g. 43:74 to mean the Plus key on the
numeric keypad, rather than the ordinary plus
key. See table following for common pairs.
'xxxx' Stuff the characters between the quote marks.
The string itself may not contain 's.
"xxxx" Stuff the characters between the double quote
marks. The string itself may not contain "s.
F70,20,5,01,"Please enter your phone number"
The absolute FIND command.
Wait patiently for text to appear at col,
row, length, attribute. The attribute is
optional.
StuffIt searches starting at column 70, row
20 for the string "Please enter your phone
number".
It waits until the string appears. The 5
means allow some slop. The string may START
anywhere in a window 5 characters wide. It
does not mean the whole string must FIT in a
window five characters wide. See note below
on Stuffit's co-ordinate system. The 01 is a
rarely used feature. It means, the match
only counts if the string is displayed with
decimal video attribute "01".
P10,1,160,01,"Please enter your phone number"
The relative PROMPT command.
Wait patiently for text to appear at relative
col, row, length, attribute. The attribute
is optional. Stuffit searches for the string
"Please enter your phone number" starting
left ten columns, and up one row from where
the cursor is. It waits until the string
appears. The 160 means allow some slop. The
string may START anywhere in a window 160
characters wide (two lines). It does not
mean the whole string must FIT in the window.
The 01 is a rarely used feature. It means,
the match only counts if the string is
displayed with decimal video attribute "01".
! Reboot. (=0 ! will reboot at midnight.)
/F:MyFile.Txt Read commands from MyFile.Txt instead for
from the command line. This command may be
only be used on the command line, not nested
in a file.
/B:512 Allocate room for 512 bytes for the script.
You must allocate enough to store the ENTIRE
script once it has been converted to a
compact internal form. On initial loading,
StuffIt will use a minimum of 512 bytes, or
automatically expand to whatever is necessary
to needed to store the compact tokenized form
of the input file. If you want to save a few
bytes you can prune it back using the /B:
command. Future versions may do this
automatically.
/R will Remove (Unload) Stuffit from RAM.
StuffIt is a TSR and so stays resident in
RAM. The overhead is minuscule, a mere 1232
bytes, half of which is the buffer.
CO-ORDINATE SYSTEM
The co-ordinate system Stuffit uses for the FIND command is very
familiar to programmers who poke bytes into the video REGEN buffer
of display adapters, but it may seem a little strange to someone who
has a mathematical background. Mathematicians have two systems:
1. X,Y co-ordinates where the origin 0,0 is in the lower
left corner.
2. Matrices indexed by row and column. Usually rows and
columns are numbered starting with 1. Rows are
numbered starting at the top. Traditionally co-
ordinates are given in the order row, then column.
Stuffit uses a hybrid of these two schemes. It uses row and
column, but starts numbering at 0,0 instead of 1,1 in the upper
left corner. Stuffit uses column, row order.
For relative positioning in the PROMPT command, left and up are
considered positive. This is the exact opposite convention to
what the FIND command uses. Beware!
EXAMPLES:
Format floppies alternately in A: and B:, without answering any
prompts:
REM EXAMPLE 1 FLOPPY FORMATTER
echo off
:loop
Stuffit ' ' +0 13 P25,0,5,"Format another" +1 'N' 13
format A:
Stuffit ' ' +0 13 P25,0,5,"Format another" +1 'N' 13
format B:
goto loop
Use one PC for both backup and Host GW on a LAN:
REM EXAMPLE 2 AUTOEXEC.BAT
Rem Start backup program in batch mode:
Rem Use Stuffit, to reboot GW program at midnight
Stuffit =00:00:00 !
Rem Start GW program
LAN-GW
TROUBLE SHOOTING
PROBLEM: Stuffit fails to send all the keystrokes. Only some
keystrokes get through.
SOLUTION: Your application is clearing the type-ahead buffer from
time to time. You can outfox it by using the +2 command to
insert a short delay AFTER the program has c